package o2o.dao.PO.company.postman;

import lombok.Data;
import lombok.experimental.Accessors;
import o2o.dao.TO.sync.PostCompanyTO;
import o2o.dao.VO.company.postman.PostCompanyInfoVO;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.Date;

/**
 * 配送公司信息
 *
 * @User: @Created by yangtk
 * @Date: @Date 2019/7/30 9:55
 * @Classname: PostCompanyInfo
 * @To 配送公司
 */
@Data
@Accessors(chain = true)
public class PostCompanyInfo implements Serializable {

    public final static String DELIVERY_SALARY_SETTING_DRAW = "draw";           // 骑士配送费规则-平台抽成
    public final static String DELIVERY_SALARY_SETTING_COUNT = "count";         // 订单量

    private Long id;
    private String sysAppKey;
    private String username;        // 法人账号
    private String companyName;
    private String comType;         // 公司类型 deliver 配送公司  plate 平台公司
    private String province;        // 所在省份
    private String city;            // 所在市区
    private String county;          // 所在区县
    private Long cityAdminId;       // 城市代理id
    private Double adminShareRate;  // 代理抽成比例，没有城代的话是平台的分成比例
    private Double lat;
    private Double lng;
    private String lnglats;         // 电子围栏
    private Integer allowNoContract; // 是否允许 接非签约单 0 不允许  1 允许
    private String address;         // 详细地址
    private String deliverSalarySetting;        // 配送费-骑士配送费规则  draw:抽成 count-订单量
    private Double deliverySalaryproportion;    // 抽成比例设置-骑士配送费来源 抽成
    private Integer deliverySalaryData;         // 骑士配送费为订单量的时候，需要设置每月的结算时间（可以是每月的1号，也可以是每个月的10号）

    // 收费标准
    private Double fixedCost;// 按单店铺计算：配送固定费用
    private Double withinDistance;//距离 ：店铺配送指定距离以内 只收取固定费用
    private Double oneKmCost;// 超出固定距离费用

    private Integer delFlag = 0;            // 删除
    private String createUser;     // 创建者
    private Long createTime;       // 创建时间
    private String updateUser;     // 更新者
    private Date updateTime;      // 更新时间


    public PostCompanyTO convert2TO() {
        PostCompanyTO to = new PostCompanyTO();
        BeanUtils.copyProperties(this, to);
        return to;
    }

    public PostCompanyInfoVO convert2VO() {
        PostCompanyInfoVO vo = new PostCompanyInfoVO();
        BeanUtils.copyProperties(this, vo);
        return vo;
    }


}

